package org.example.design.creative.prototype;

/**
 *  原型模式是一种创建型设计模式, 使你能够复制已有对象.
 *
 *  需求：如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢？首先, 你必须新建一个属于相同类的对象. 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中.
 *       不错！但有个小问题. 并非所有对象都能通过这种方式进行复制, 因为有些对象可能拥有私有成员变量, 它们在对象本身以外是不可见的.
 *
 *  解决：原型模式将克隆的细节过程委派给被克隆的实际对象. 模式为所有支持克隆的对象声明了一个通用接口, 该接口让你能够克隆对象, 同时又无需将代码和对象所属类耦合. 通常情况下, 这样的接口中仅包含一个克隆方法.
 *
 *  实现方式：
 *      1、object-clone()函数实现 [参考simple]
 *      2、自定义克隆接口 [参考complete]
 *
 *  场景：原型模式常和备忘录模式结合, 因其备忘录需要克隆
 *
 * Author: GL
 * Date: 2021-12-06
 */
public class Explain {
}
